The field of the invention is programmable controllers, and more specifically, means for detecting and diagnosing malfunctions which may occur in either the controller or the system to which it is attached.
Programmable controllers such as that disclosed in U.S. Pat. No. 3,810,118 issued May 7, 1974, and entitled "Programmable Matrix Controller" are rapidly replacing relay panels and hardwired logic systems for many control applications. Sensing devices on the controlled system connect to the programmable controller and the condition of these sensing devices are monitored to provide information concerning the status of the controlled system. The programmable controller also connects to operating devices on the controlled system, and depending on the status of the system as indicated by the sensing devices, it selectively energizes the operating devices to provide the desired system operation. The desired system operation is determined by a control program which is comprised of a set of instructions stored in a controller memory. These instructions are sequentially read out of the controller memory to operate the programmable controller and attached system. For example, a series of instructions in the control program may examine the condition of an identified set of sensing devices on the controlled system, and depending upon the status of those sensing devices, a subsequent instruction will energize or deenergize an identified operating device on the controlled system. The program instructions are read out of the controller memory sequentially at a very high rate, and as a result, the examination of each sensing device and the energization or deenergization of operating devices are performed "serially" at a sufficiently high speed as to appear instantaneous to the controlled system. Each instruction is decoded by common circuitry and a single central logic unit performs the logical functions required by each instruction.
Although programmable controllers are constructed of highly reliable solid state logic devices, malfunctions can occasionally occur in the circuitry. In contrast to relay banks and hardwired logic controllers in which each operating device is separately controlled by distinct hardware, much of the hardware in a programmable controller operates "serially" to directly control all of the operating devices on the controlled system. Indeed, it is this feature which allows a programmable controller to perform complex control functions with a minimal amount of hardware, and which partially accounts for their increased usage in recent years. Therefore, although the likelihood of a malfunction occurring in a programmable controller is less than in a corresponding relay bank or hardwired logic controller, when a malfunction does occur its effect on the controlled system is much more difficult to predict and it is likely to have a more pervasive effect on the operation of the controlled system. Not only is the need for sensing the occurrence of a malfunction in a programmable controller most important, therefore, but it is also important that the controller be shut down when such a malfunction occurs.